package org.dromara.admin.domain.vo;

import org.dromara.admin.domain.Supplier;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 供应商信息视图对象 bi_supplier
 *
 * @author Lion Li
 * @date 2025-10-10
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Supplier.class)
public class SupplierVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 供应商唯一ID
     */
    @ExcelProperty(value = "供应商唯一ID")
    private Long id;

    /**
     * 关联主体ID（归属主体，关联bi_company.id）
     */
    @ExcelProperty(value = "关联主体ID", converter = ExcelDictConvert.class)
    private Long companyId;

    /**
     * 主体信息
     */
    @ExcelProperty(value = "主体信息")
    private CompanyVo companyInfo;

    /**
     * 创建人ID（关联bi_employee.id）
     */
    @ExcelProperty(value = "创建人ID", converter = ExcelDictConvert.class)
    private Long creatorId;

    /**
     * 创建人信息
     */
    @ExcelProperty(value = "创建人信息")
    private EmployeeVo employeeInfo;

    /**
     * 供应商名称
     */
    @ExcelProperty(value = "供应商名称")
    private String supplierName;

    /**
     * 联系人
     */
    @ExcelProperty(value = "联系人")
    private String contactPerson;

    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话")
    private String phone;

    /**
     * 地址-省
     */
    @ExcelProperty(value = "地址-省")
    private String province;

    /**
     * 地址-市
     */
    @ExcelProperty(value = "地址-市")
    private String city;

    /**
     * 地址-区/县
     */
    @ExcelProperty(value = "地址-区/县")
    private String district;

    /**
     * 详细地址
     */
    @ExcelProperty(value = "详细地址")
    private String detailAddress;

    /**
     * 备注（如“优选供应商”）
     */
    @ExcelProperty(value = "备注", converter = ExcelDictConvert.class)
    private String remark;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

}
